![]() Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
专利摘要:
Eineerfindungsgemäße Vorrichtungzum Bestimmen eines Ergebnisses (C) umfasst eine Einrichtung (26)zum Ermitteln eines ersten und eines zweiten Zwischenergebnisses,wobei das Ergebnis (C) von dem ersten und dem zweiten Zwischenergebnisabhängt,sowie eine Einrichtung (24) zum zufälligen Bestimmen einer Reihenfolge,in welcher die Einrichtung (26) zum Ermitteln die Ermittlung desersten und zweiten Zwischenergebnisses durchführt, wodurch sich die nachaußenerfassbare Leckinformation, d. h. die Korrelation geheimer Datenmit dem Leistungsverbrauch und/oder der abgestrahlten elektromagnetischenLeistung oder dergleichen, verringert. 公开号:DE102004018874A1 申请号:DE102004018874 申请日:2004-04-19 公开日:2005-11-10 发明作者:Steffen Marc Sonnekalb;Andreas Wenzel 申请人:Infineon Technologies AG; IPC主号:G06F17-00
专利说明:
[0001] Dievorliegende Erfindung bezieht sich auf die Bestimmung eines Ergebnissesim allgemeinen und ist beispielsweise vorteilhaft bei der Bestimmung vonErgebnissen, wie sie währendder Durchführung eineskryptographischen Algorithmus auftreten. [0002] Ineinigen kryptographischen Algorithmen werden sogenannte S-Boxen verwendet.Beispiele solcher kryptographischen Algorithmen sind beispielsweiseder DES- (Data Encryption Standard) und der AES- (Advanced EncryptionStandard = fortgeschrittener Verschlüsselungsstandard) Algorithmus. 4 zeigt schematisch dieFunktionsweise des DES-Algorithmus. Zum Verschlüsseln der Daten werden diesezunächstin 64-Bit-Blöcke 900 eingeteilt,um sie blockweise zu verarbeiten. Die Blöcke 900 werden dannzunächsteiner Permutation 902 unterzogen. Hernach wird der permutierte64-Bit-Datenblock in zwei 32-Bit-Datenblöcke 904 und 906 aufgeteilt.Diese 32-Bit-Blöcke 904 und 906 werdeniterativ in 16 sogenannten Runden folgenden Operationen unterzogen.Zunächstwird der Inhalt des Datenblockes 906, der in 4 mit R bezeichnet ist,auf den Datenblock 904 der nächsten Runde abgebildet, derin 6 mit L bezeichnet ist. Diese Abbildungist mit 908 dargestellt. Um den neuen Inhalt des DatenblockesR 906 fürdie nächsteRunde zu erhalten, wird der aktuelle Inhalt des Datenblocks 906 einer Expansions-OperationE 910 unterzogen, um aus dem 32-Bit-Datenblock nach einervorbestimmten Ergänzungsregel,nach der bestimmte Bits verdoppelt werden, einen 48-Bit-Datenblockzu erhalten. Letztgenannter wird daraufhin in einem Schritt 912 durch eineXOR-Verknüpfung 912 miteinem 48-Bit-Rundenschlüsselverschlüsselt,der fürjede Runde unterschiedlich ist aber aus ein und demselben 56-Bit-Schlüssel 914 durcheine hier nicht näher erörterte Operation 916 abgeleitetwird. [0003] Derverschlüsselteund expandierte 48-Bit-Datenblock wird in den eingangs erwähnten sogenanntenS-Boxen S1, S8 wieder auf einen 32-Bit-Datenblock abgebildet. Hierzubildet jede S-Box je sechs unterschiedliche der 48 Bits des verschlüsseltenDatenblocks auf vier Bits ab, wobei die Abbildungsvorschriften dereinzelnen S-Boxen zumeist durch Standards festgelegt sind. Nachdieser S-Box-Abbildung 918 wird der sich ergebende Wert wiedereiner Permutation P 920 unterzogen und daraufhin der permutierte32-Bit-Block mit dem 32-Bit-Datenblock L 904 der vorhergehendenRunde einer XOR-Verknüpfung 922 unterzogen.Der XOR-verknüpfte32-Bit-Datenblock stellt den neuen 32-Bit-Datenblock R 906 für die nächste Rundedar. Diese durch die Schritte 908, 910, 912, 918, 920 und 922 definierteRunde wird 16 mal durchgeführt.Nach den 16 Runden werden die sich ergebenden 32-Bit-Datenblöcke L undR (904, 906) wieder zu einem 64-Bit-Datenblockzusammengefasst und einer zu der Permutation 902 inversenAusgangspermutation 924 unterzogen, wodurch der schließliche 64-Bit-Ausgangsdatenblockin verschlüsselterForm erhalten wird, der mit 926 angezeigt ist. [0004] BeiDurchführungeines kryptographischen Algorithmus, wie dem im Vorhergehenden exemplarischerläutertenDES-Algorithmus, auf Hardwarebasis wird durch Seitenkanäle, wieStromversorgung oder elektromagnetische Abstrahlung, Information über dieabgearbeitete Operation und die verwendeten Daten, wie z.B. insbesonderedie Rundenschlüssel,geleckt. Diese Information kann dann mit Hilfe von DPA (differentialpower analysis = differentielle Leistungsanalyse) oder DMA (differentialelectro-magnetic analysis) verwendet werden, um Geheimnisse, wiez.B. den den Rundenschlüsselnzugrundeliegenden Masterschlüsseldes DES-Algorithmus, auszuspähen.Dies lässtsich folgendermaßenanhand des DES-Algorithmus von 4 veranschaulichen. Wieim Vorhergehenden erwähnt,sind die Abbildungsvorschriften der verschiedenen S-Boxen bekannt.Zudem macht sich jeder Zugriff in dem Leistungsprofil oder dem Profilder elektromagnetischen Abstrahlung der den DES- Algorithmus ausführenden Schaltung durch bestimmtecharakteristische Verläufebemerkbar, die mit den Eingangsadressen in die S-Boxen korrelieren.Insbesondere ist es beim DES-Algorithmusgefährlich,dass die in den S-Boxen eingehenden Eingangsadressen mit den geheimenRundenschlüsselnverschlüsseltsind, die auf bekannte in einer vom Standard vorgegebenen Weisevon dem geheimen Hauptschlüssel 914 abgeleitet sind.Aus diesem Grunde ist es möglich,aus Stromprofilanalysen oder Analysen der abgestrahlten elektromagnetischenStrahlung währendder Abbildungen 918 anhand der Korrelation mit dem Stromprofil derden Algorithmus implementierenden Schaltung auf den Hauptschlüssel 914 rückzuschließen. [0005] Wiebereits erwähntsind die Kryptoalgorithmen DES und AES nicht die einzigen, bei denenDaten mittels S-Boxen verschlüsseltwerden. Bei all diesen Algorithmen erlaubt eine differentielle Stromanalyseoder Analyse der abgestrahlten elektromagnetischen Strahlung aufdie im Vorhergehenden angedeutete Weise einen Angriff auf geheimeDaten. Falls ungeschützteS-Boxen zur Speicherverschlüsselung ineinem Mikrocontroller verwendet werden, können selbst Software-Kryptoalgorithmen,welche auf dem Prozessor laufen und Daten aus den verschlüsselten Speichernbeziehen, übereinen DPA-Angriffangegriffen werden. [0006] Dieszu verhindern erfordert es folglich, die verwertbare Abstrahlungzu minimieren oder so zu verstecken, dass sie nicht oder nur mitgroßemAufwand nutzbar wird. Bisher wurde dieses Problem noch auf keineadäquateWeise gelöst.Es ist zwar möglich,durch den Einsatz einer Full-Custom-Dual-Rail-Schaltungstechnik die Sicherheit gegen DPA-Angriffediesbezüglichzu erhöhen,allerdings ist der Einsatz dieser Schaltungstechnik mit einem äußerst hohenAufwand verbunden, der nicht bei allen Anwendungen gerechtfertigterscheint. Weitere möglicheVorgehensweisen bestündenbeispielsweise in einer randomisierten Programmausführung, wasjedoch am Leckprofil erkannt werden könnte, die Durchführung vonkritischen Be rechnungen mit Daten, welche durch ein One-Time-Padgeschütztsind, das Erzeugen von Rauschen, das Einfügen von Jitter in die Codeausführung bzw.die Clock bzw. den Takt des Systems oder ähnliches. Diese Möglichkeiten sindjedoch zum Teil nicht sehr effektiv oder durch Schutzrechte Dritterblokkiert. [0007] DieAufgabe der vorliegenden Erfindung besteht deshalb darin, ein Schemazur Bestimmung eines Ergebnisses zu schaffen, das eine erhöhte Sicherheitgegenüberkryptographischen Angriffen, wie z.B. DPA- oder DEMA-Angriffen,mit vertretbarem Aufwand ermöglicht. [0008] DieseAufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahrengemäß Anspruch14 gelöst. [0009] Eineerfindungsgemäße Vorrichtungzum Bestimmen eines Ergebnisses umfasst eine Einrichtung zum Ermittelneines ersten und eines zweiten Zwischenergebnisses, wobei das Ergebnisvon dem ersten und dem zweiten Zwischenergebnis abhängt, sowieeine Einrichtung zum zufälligenBestimmen einer Reihenfolge, in welcher die Einrichtung zum Ermittelndie Ermittlung des ersten und zweiten Zwischenergebnisses durchführt. [0010] DerKerngedanke der vorliegenden Erfindung besteht darin, dass bei derDurchführungkryptographischer Algorithmen eine Schwächung der gemittelten Leckinformationdadurch erzielt werden kann, dass die im Laufe der Durchführung diesesAlgorithmus auftretenden Ergebnisse oder Teilergebnisse, die ihrerseitswiederum auf Zwischenergebnissen basieren, derart bestimmt werden,dass die Reihenfolge, in der die Zwischenergebnisse ermittelt werden,zufälligbestimmt wird. Die vorliegende Erfindung nutzt dabei den Umstandaus, dass es einerseits fürdie Bestimmung eines Ergebnisses aus zwei Zwischenergebnissen imHinblick auf das Ergebnis der Bestimmung irrelevant ist, in welcherReihenfolge die Zwischenergebnisse ermittelt werden, dass sich aberandererseits die nach außenerfassbare Leckinformation, d.h. die Korrelation geheimer Datenmit dem Leistungsverbrauch und/oder der abgestrahlten elektromagnetischenLeistung oder dergleichen, verringert, wenn die Zwischenergebnissein zufälliger Reihenfolgeermittelt werden, da sich auch dann, wenn bei Durchführung deskryptographischen Algorithmus gleiche Eingangsdaten für den Algorithmus verwendetwerden, die entstehenden Leckprofile unterschiedlich sind. Dieserhöhtangreiferseitig die Zahl der notwendigen Mittelungen, was über Erfolg oderMisserfolg eines Angriffs entscheiden kann. [0011] Dievorliegende Erfindung ist insbesondere dann vorteilhaft, wenn dieErmittlung der Zwischenergebnisse das Nachschlagen in einer odermehreren Nachschlagtabellen umfasst, da speziell bei SpeicherzugriffenKorrelationen auf der Adresse, wie sie beispielsweise bei den S-Box-Zugriffenbekannter Blockchiffren, wie z.B. dem DES- oder AES-Algorithmus,vorkommen, ein großesLeckrisiko darstellen. Insbesondere ist hier ein effektiver Hardwareschutz durchbeispielsweise Dual-Rail-Schaltungstechnik aufgrundder meist sehr weitläufigenSpeichersysteme nur schwer realisierbar. Eine Verschlüsselungsrundebesteht nun aber in der Regel bei Blockchiffren aus mehreren, unabhängigen S-Box-Zugriffen,nämlichacht parallelen, voneinander unabhängigen Zugriffen auf acht unterschiedlicheS-Boxen im Fall des DES und 16 unabhängigen Zugriffen auf eine gemeinsameS-Box in dem Fall des AES, so dass sich hier die Erfindung in Bezugauf die S-Box-Zugriffe besonderes effektiv einsetzen lässt, dadie Anzahl der möglichenDurchführungsreihenfolgen,aus denen zufälligeine bestimmt wird, groß ist. [0012] DieseEigenschaft macht sich ein Ausführungsbeispielder vorliegenden Erfindung zu nutzen und ermöglicht eine effektive, durchexterne Angriffsverfahren nicht aufhebbare Schwächung der gemittelten Leckinformationbei Speicherzugriffen, welche fürdie DPA/DEMA benötigtwerden, wodurch diese Art von Angriffen wesentlich erschwert odergar vereitelt wird. [0013] Gemäß diesemAusführungsbeispielumfasst die Einrichtung zum Ermitteln der Zwischenergebnisse, aufwelchen das schließlicheErgebnis basiert, eine oder mehrere Nachschlagtabellen. Ein Zwischenergebnisist definiert als das Ergebnis des Nachschlagens in der Nachschlagtabellebzw. einer der Nachschlagtabellen unter Verwendung eines dem Zwischenergebniszugeordneten Eingangsdatums. Die einzelnen Nachschlag- bzw. Ersetzungsvorgänge werdenjedoch anstatt in einer vorbestimmten, konstanten Reihenfolge ineiner zufälligenReihenfolge durchgeführt. [0014] Gemäß einemspeziellen Ausführungsbeispielder vorliegenden Erfindung wird die Zufälligkeit der Durchführung derErmittlung der Zwischenergebnisse dadurch erzielt, dass eine derErmittlungen eines Zwischenergebnisses zufällig als die einleitende, ersteZwischenergebnisermittlung bestimmt wird, von der ab die Ermittlungender übrigenZwischenergebnisse in einer vorbestimmten, konstanten zyklischenReihenfolge durchgeführtwerden. Die Anzahl der möglichenDurchführungsreihenfolgenist bei diesem Ausführungsbeispielzwar auf die Anzahl der Zwischenergebnisse begrenzt, aber die Implementierungist einfach, da lediglich ein Zufallswert bestimmt werden muss. [0015] Dievorliegende Erfindung ist ferner dadurch vorteilhaft, dass sie ineiner Art und Weise in existierende Programmcodes für kryptographischeAlgorithmen implementierbar ist, bei der nicht etwa unterschiedlicheProgrammcodeabschnitte zufälligangesprungen werden müssen,um die unterschiedliche zufälligeDurchführungsreihenfolgezu realisieren, sondern dass die zufällige Durchführungsreihenfolge mitein und demselben Programmcode lediglich durch geschickte Adressmanipulationenbzw. Zeigermanipulationen erzielt werden kann. Der Angreifer kanndeshalb auch nicht durch Beobachtung des Programmzählers bzw.des Programmabarbeitungsverlaufs auf die zufällig bestimmte Durchführungsreihenfolgerückschließen. [0016] BevorzugteAusführungsbeispieleder vorliegenden Erfindung werden nachfolgend Bezug nehmend aufdie beiliegenden Zeichnungen nähererläutert.Es zeigen: [0017] 1 einBlockschaltbild einer Vorrichtung zum Bestimmen eines Ergebnissesgemäß einem Ausführungsbeispielder vorliegenden Erfindung; [0018] 2 einBlockschaltbild einer Vorrichtung zur Bestimmung eines Ergebnissesgemäß einem weiterenAusführungsbeispielder vorliegenden Erfindung; [0019] 3a eineschematische Darstellung des Aufbaus des Eingangsdatenblocks vorder S-Box-Substitution bei einem DES-Algorithmus; [0020] 3b eineschematische Darstellung der Anordnung von S-Box-Nachschlagtabellen in einem linearemAdressraum gemäß einemAusführungsbeispielder vorliegenden Erfindung; [0021] 3c eineschematische Darstellung des Aufbaus einer Adresse zur Ersetzungeines 6-Bit-Worts bzw. -Blocks aus dem Eingangsdatenblock von 3a zumZugriff auf eine der Nachschlagtabellen von 3b gemäß einemAusführungsbeispielder vorliegenden Erfindung; [0022] 3d einPseudoprogrammcode zur Implementierung einer zufälligen Durchführung der S-Box-Operationenbei einer Substitutionsoperation einer Runde eines DES-Algorithmus gemäß einem Ausführungsbeispielder vorliegenden Erfindung; und [0023] 4 einDiagramm zur Veranschaulichung des DES-Algorithmus. [0024] Zunächst wirddarauf hingewiesen, dass gleiche Elemente in den 1 und 2 mitgleichen Bezugszeichen versehen sind und dass eine wiederholte Beschreibungder Elemente weggelassen wird. [0025] 1 zeigteine Vorrichtung zur Bestimmung eines Ergebnisses C gemäß einemAusführungsbeispielder vorliegenden Erfindung. In der folgenden Beschreibung wird exemplarischdavon ausgegangen, dass das Ergebnis C entweder das Ergebnis oderein Zwischenergebnis eines kryptographischen Algorithmus ist. DieVorrichtung, die in 1 allgemein mit 10 angezeigtist, bestimmt das Ergebnis C auf der Basis zweier Eingangsoperanden oderEingangsoperandensätzeA und B. [0026] DieVorrichtung 10 umfasst dementsprechend einen Eingang 12 für A, einenEingang 14 für Bund einen Ausgang 16 fürC. Ferner umfasst die Vorrichtung 10 eine erste und einezweite Zwischenergebnisermittlungseinrichtung 18 bzw. 20,eine Einrichtung 22 zum Bilden des Ergebnisses C aus Zwischenergebnissender Zwischenergebnisermittlungseinrichtungen 18, 20 undeine Einrichtung 24 zum Bestimmen einer Durchführungsreihenfolge. [0027] DieZwischenergebnisermittlungseinrichtung 18 ist zwischenden Eingang 12 und die Einrichtung 22 geschaltet.Dementsprechend ist die Zwischenergebnisermittlungseinrichtung 20 zwischenden Eingang 14 und die Einrichtung 22 geschaltet.Die Einrichtung 22 gibt das Ergebnis C am Ausgang 16 aus. DieEinrichtung 24 zum Bestimmen der Reihenfolge wirkt aufentsprechende Einrichtungen, wie z.B. die Einrichtungen 18 und 20 selbstoder auf nicht gezeigte Einrichtungen zwischen den Eingängen 12 und 14 einerseitsund den Zwischenergebnisermittlungseinrichtungen 18 und 20 andererseits,um, wie es im folgenden beschrieben wird, die Reihenfolge der Bearbeitungder Eingangsoperanden A und B durch die Zwischenergebnisermittlungseinrichtungen 18, 20 zufällig zubestimmen bzw. zu steuern. [0028] Nachdemim Vorhergehenden der Aufbau der Vorrichtung 10 von 1 beschriebenworden ist, wird im folgenden dessen Funktionsweise beschrieben. [0029] DieZwischenergebnisermittlungseinrichtungen 18 und 20 ermittelnaus den Eingangsoperanden bzw. Eingangsoperandensätzen A undB gemäß einervorbestimmten Operation jeweils ein Zwischenergebnis. Die vorbestimmteOperation kann beispielsweise das Nachschlagen in einer Nachschlagtabelle anhanddes Operanden bzw. Operandensatzes A bzw. B oder das logische bzw.arithmetische Verknüpfender Eingangsoperanden des Eingangsoperandensatzes A bzw. B umfassen,um das jeweilige Zwischenergebnis zu erhalten. Ein Beispiel für eine arithmetischeVerknüpfungwäre einemodulare Multiplikation oder modulare Addition zweier Eingangsoperanden. [0030] DieEinrichtung 22 bildet, nachdem sie die Zwischenergebnissevon den Zwischenergebnisermittlungseinrichtungen 18 und 20 erhaltenhat, aus den Zwischenergebnissen dieser Einrichtungen das ErgebnisC. Die Bildung des Ergebnisses C kann beispielsweise lediglich ausdem Zusammenfügeneiner Bitdarstellung der beiden Zwischenergebnisse zu einer Bitdarstellungdes Ergebnisses C bestehen. In diesem Fall manifestiert sich dieEinrichtung 22 lediglich darin, dass im weiteren Verlaufder Kryptoalgorithmusdurchführungdas Ergebnis C weiter verarbeitet wird, oder darin, dass das ErgebnisC das Ergebnis, wie z.B. das Chiffrat, des Kryptoalgorithmus selbstdarstellt. Weiterhin könnteaber die Einrichtung 22 das Ergebnis auch aus den Zwischenergebnissen durcharithmetische oder logische Operationen bilden, wie z.B. durch arithmetischeoder logische Verknüpfungder beiden Zwischenergebnisse, wie z.B. einer bitweisen XOR-Verknüpfung beiderZwischenergebnisse der Einrichtungen 18 und 20. [0031] Dieden Zwischenergebnisermittlungseinrichtungen 18 und 20 zugrundeliegendeHardware, wie z.B. der Prozessor oder der Speicher, auf den zugegriffenwird, wie es im folgenden noch erörtert wird, gibt nach außen hinInformationen überdie Eingangsoperanden A bzw. B preis bzw. leckt Informationen über dieEingangsoperanden A bzw. B. Dies gilt insbesondere dann, wenn diedurch diese Einrichtungen 18 und 20 durchgeführte Operationeneine Substitutionsoperation, d.h. dem Nachschlagen in einer Nachschlagtabelledurch einen Speicherzugriff auf eine gespeicherte Nachschlagtabelle,besteht. Um nun das Leckrisiko durch DPA/DEMA-Angriffe zu reduzieren,bestimmt die Einrichtung 24 vorab, d.h. vor der Durchführung derZwischenergebnisermittlungen durch die Einrichtungen 18 und 20,zufälligeine Reihenfolge, in welcher die Zwischenergebnisermittlungseinrichtungen 18 und 20 ihrjeweiliges Zwischenergebnis ermitteln. In dem vorliegenden einfachenFall lediglich zweier zu ermittelnder Zwischenergebnisse ist esausreichend, dass die Einrichtung 24 auf zufällige Weiseeinen der zwei Werte 0 und 1 bestimmt. Je nachdem, welcher Wertzufälligbestimmt worden ist, bewirkt die Einrichtung 24, dass zunächst eineder beiden Zwischenergebnisermittlungseinrichtungen 18, 20 ihrZwischenergebnis aus dem ihr zugeführten bzw. zugeordneten EingangsdatumA oder B ermittelt und erst danach die andere der beiden Zwischenergebnisermittlungseinrichtungen 18, 20 ihrerseitsihr Zwischenergebnis basierend auf dem ihr zugeordneten OperandenB bzw. A ermittelt und an die Einrichtung 22 weiterleitet.Hierzu steuert die Einrichtung 24 beispielsweise geeigneteRegister an, um zuerst A nach 18 und dann B nach 20 durchzulassenoder umgekehrt. [0032] DerVorteil hierin besteht darin, dass der Angreifer aus dem Stromprofilbzw. der abgestrahlten elektromagnetischen Strahlung nur unter Verwendungeiner höherenAnzahl an Mittlungen, in dem vorliegenden Fall einer um den Faktor4 erhöhtenAnzahl an Mittlungen, benötigt,um an geheime Informationen betreffend einen das Ergebnis C umfassen kryptographischenAlgorithmus zu gelangen, wie z.B. einen Masterschlüssel. [0033] Bezugnehmend auf 1 sei noch darauf hingewiesen,dass die Vorrichtung 10 sowohl vollständig in Hardware als auch teilweisein Hardware und Software realisiert sein kann. Insbesondere wäre es möglich, dassdie Zwischenergebnisermittlungseinrichtungen 18 und 20 nebender seriellen Durchführungder Ermittlung der Zwischenergebnisse, wie sie im Vorhergehendenbeschrieben wurde, auch zu gleichzeitigen Zwischenergebnisermittlungenfähig wären. Umden in diesem Fall durch die vorliegende Erfindung bzw. den zufällig künstlichhervorgerufenen zeitlichen Versatz in der Ausführung bewirkten „Leerlauf" der beiden Einrichtungen 18 und 20,da ja Zeitpunkte existieren, da nur eine der Zwischenergebnisermittlungseinrichtungenihr Zwischenergebnis berechnet und die anderen nicht, zu minimieren, könnte esvorgesehen sein, dass die jeweils gerade sich im Leerlauf befindlicheZwischenergebnisermittlungseinrichtung für andere Zwecke als für die Bestimmungdes Ergebnisses C verwendet wird, nämlich beispielsweise im Rahmeneines parallel auf einem Prozessor ablaufenden Prozesses. [0034] Wiees jedoch noch Bezug nehmend auf das Ausführungsbeispiel von 3a–3d beschriebenwird, kann die den Zwischenergebnisermittlungseinrichtungen zugrundeliegendeOperation auch in einer Substitutionsoperation bzw. dem Nachschlagenin einer Nachschlagtabelle mittels Speicherzugriffs bestehen, beispielsweiseinnerhalb einer Chipkarte mit einem Prozessor und zugehörigem Speicher.In diesem Fall sind die Zwischenergebnisermittlungseinrichtungen 18 und 20 beispielsweise Speicherbefehle,die in Adressen, die von den Eingangsoperanden A bzw. B abhängen, Speicherinhalteaus einem Speicher laden, die geladenen Speicherinhalte die Zwischenergebnissedarstellen. Wie es Bezug nehmend auf 3d angezeigtwird, können dieZwischenergebnisermittlungseinrichtungen 18 und 20 sogardurch dieselben Programmcodezeilen implementiert sein. In diesemFall sind die Zwischenergebnisermittlungseinrichtungen 18 und 20 aufgrundder ohnehin seriellen Programmabarbeitung inhärenterweise auf eine serielleZwischenergebniser mittlung festgelegt. Die Einrichtung 24 istin diesem Fall ein Programmteil, der dafür sorgt, dass der die Einrichtungen 18 und 20 implementierende Programmteildie Zwischenergebnisermittlungen in der zufällig bestimmten Reihenfolgedurchführt.In dem Fall des gleichen die Einrichtungen 18 und 20 implementierendenProgrammcodes unterscheiden sich die beiden Einrichtungen 18 und 20 nurnoch durch die unterschiedlichen Speicherplätze bzw. bereiche, in denendie Nachschlagtabelle fürdie Zwischenergebnisermittlungseinrichtung 18 einerseitsund die Nachschlagtabelle fürdie Zwischenergebnisermittlungseinrichtung 20 andererseitsgespeichert sind, wie es späterBezug nehmend auf 3b exemplarisch vor dem Hintergrundeines DES-Algorithmus noch nähererläutertwird. [0035] Beidem im Vorhergehenden beschriebenen Ausführungsbeispiel von 1 wurdenzur Ermittlung der beiden Zwischenergebnisse Zwischenergebnisermittlungseinrichtungen 18 und 20 verwendet,welche sich zumindest im Hinblick auf den Speicherort der zugrundeliegendenNachschlagtabelle, der zugrundeliegenden Hardware oder des zugrundeliegendenProgrammcodes oder ähnlichemunterschieden. Das nachfolgend Bezug nehmend auf 2 beschriebeneAusführungsbeispielunterscheidet sich dadurch von dem vorhergehenden, dass für die Ermittlungder beiden Zwischenergebnisse ein und dieselbe Zwischenergebnisermittlungseinrichtungverwendet wird. Die Vorrichtung von 2, die allgemeinmit 10' angezeigtist, umfasst folglich neben den beiden Eingängen 12, 14,dem Ausgang 16 und den Einrichtungen 22 und 24 lediglicheine gemeinsame Zwischenergebnisermittlungseinrichtung 26,die einen mit einem Eingang der Einrichtung 22 verbundenenAusgang und einen Eingang aufweist, der über eine Umschalteinrichtung 28 selektivmit entweder dem Eingang 12 oder dem Eingang 14 verbindbarist. Die Einrichtung 24 steuert die Umschalteinrichtung 28 jenach der zufälligbestimmten Reihenfolge so an, dass zunächst der Eingangsoperand bzw.Eingangsoperandensatz A und dann erst der Eingangsoperand bzw. EingangsoperandensatzB an die Zwischenergebnisermittlungseinrichtung 26 weitergeleitetwird oder umgekehrt. Effektiv bestimmt hierdurch die Einrichtung 24 aufzufälligeWeise die Reihenfolge der Durchführungder Ermittlung des aus A erhaltenen Zwischenergebnisses und desaus B erhaltenen Zwischenergebnisses. [0036] WieBezug nehmend auf das Ausführungsbeispielvon 1 erläutert,kann die Vorrichtung 10' inHardware oder einer Kombination aus Hardware und Software implementiertsein. Bei einer Implementierung in Hardware ist die Umschalteinrichtung 28 beispielsweiseein Multiplexer, dessen Steuereingang durch die Einrichtung 24 aufzufälligeWeise gesteuert wird, so dass der Multiplexer auf zufällige Weiseentweder den Operanden A oder den Operanden B an die Zwischenergebnisermittlungseinrichtung 26 weiterleitet.Bei einer Implementierung auf Softwarebasis ist der die Zwischenergebnisermittlungseinrichtung 26 implementierendeProgrammteil beispielsweise ein solcher, der die an vorbestimmten Registernbereitgestellten Eingangsoperanden 12 und 14 ineiner Reihenfolge zyklisch lädtund verarbeitet, die er aus Zufallsinformationen ableitet, die ihmwiederum vorab durch einen die Einrichtung 24 implementierendenProgrammteil an einer vorbestimmten Speicheradresse zur Verfügung gestellt wurden.Nicht nur der die Zwischenergebnisermittlungseinrichtung implementierendeProgrammcode, sondern auch die Speicherplätze, auf die dieser Code zurErmittlung des Zwischenergebnisses aus A und des Zwischenergebnissesaus B zurückgreift, alsobeispielsweise die Nachschlagtabelle, sind bei 2 imUnterschied zu dem Ausführungsbeispiel von 1 gleich. [0037] Nachden hier allgemein beschriebenen Ausführungsbeispielen von 1 und 2 wirdnun im folgenden ein spezielles Ausführungsbeispiel für eine Anwendungder vorliegenden Erfindung beschrieben, nämlich am Beispiel der Substitutionsoperation inden Runden eines DES-Algorithmus, welche in 4 mit demBezugszeichen 918 angezeigt ist. Zur Vermeidung von Wiederholungensei bezüglichder Beschreibung des DES-Algorithmus auf die Beschreibungseinleitungverwiesen. [0038] DieSubstitutionsoperation 918 eines DES-Algorithmus umfasstacht unabhängige S-Box-Zugriffeauf acht unterschiedliche S-Boxen bzw.Nachschlagtabellen S1–S8.Eingangsdatum zu der Substitutionsoperation 918 bildetder mit dem Rundenschlüsselverschlüsselteund von 32 auf 48 Bit expandierte 48-Bit-Datenblock, welcher exemplarisch in 3 dargestellt und mit dem Bezugszeichen 30 angezeigtist. 3a stellt den 48-Bit-Datenblock als eine Aneinanderreihungvon Kästchendar, die die Bits des Eingangsdatenblocks 30 darstellen sollen,wobei die Numerierung der Kästchendie entsprechende Bitposition der einzelnen Bits angibt. Wie esin 3a angedeutet ist, untergliedert sich der Datenblock 30 inacht 6-Bit-Worte, WORT1–WORT8, diesich jeweils aus sechs unterschiedlichen Bits des 48-Bit-Datenblocks 30 zusammensetzen,wie es in 3a gezeigt ist. [0039] Umnun den DES-Algorithmus im Hinblick auf seine Substitutionsoperationzu implementieren, könnendie zugehörigenS-Boxen bzw. Nachschlagtabellenin einem linearen Adressraum aufeinanderfolgend angeordnet werden,wie es exemplarisch in 3b gezeigt ist. Jede S-Box S1–S8 istdazu vorgesehen, einen ihr zugeordneten 6-Bit-Wert, nämlich dieS-Box S1 das WORT1, die S-Box S2 das WORT2 usw., auf einen 4-Bit-Ausgangswert abzubilden,die zusammen wiederum den 32-Bit-Ausgangsdatenblockergeben, der danach der Permutation 920 unterzogen wird.Die Größe jederS-Box beträgtfolglich 4·26 Bit = 32 Bytes. Gemäß dem Ausführungsbeispiel von 3b sinddie S-Boxen S1–S8direkt hintereinanderliegend angeordnet und nehmen somit insgesamt8.32 Bytes = 256 Bytes ein. Jede S-Box beginnt an einer Basisadresse,nämlichBasisadresse 1, Basisadresse 2 usw. [0040] DerZugriff auf eine der S-Boxen S1–S8,um in denselben den Ausgangswert zu dem jeweiligen Wort WORT4–WORT8 zuerhalten, kann bei geeigneter Anordnung der Basisadresse 1 im linearen Adressraummittels einer Adresse durchgeführtwer den, welche, bezogen auf eine kleinste adressierbare Einheitvon einem Halbbyte, den in 3c exemplarischangezeigten Aufbau aufweist und allgemein mit 32 angezeigtist. Wie es zu sehen ist, ist die Zugriffsadresse 32 eine9-Bit-Adresse, deren drei höchstwertigeBits (MSBs) eine binäre3-Bit-Darstellungder Wortnummer # minus 1 und deren sechs niedrigstwertige Bits (LSBs)eine binäreDarstellung bzw. die sechs Bits des 6-Bit-Worts Wort# mit der entsprechendenWortnummer # selbst sind. Das 4-Bit-Ausgangswort, auf welches dasWORT3 durch die S-Box S3 abgebildet werden soll, wird bei diesemAusführungsbeispieldeshalb beispielsweise durch Lesen des Speicherinhalts bzw. desHalbbytes an der Adresse 32 {0, 1, 0, erstes Bit von WORT3, zweites Bitvon WORT3, ..., sechstes Bit von WORT3} erhalten. [0041] Einden DES-Algorithmus von 4 implementierender Algorithmuscodeenthielte nun gemäß einemAusführungsbeispielder vorliegenden Erfindung zumindest einen Programmcodeabschnitt,der demjenigen von 3d entspricht, d.h. einen Maschinencode,der die in dem Pseudocode von 3d enthaltenenBefehle beispielsweise wie von einem Compiler vorgeschrieben umsetzt. [0042] Derin 3d gezeigte Pseudocodeabschnitt, der allgemeinmit 34 angezeigt ist, wäreinnerhalb des DES-Algorithmuscodes für die Substitutionsoperation 918 zuständig. Indem Programmabschnitt 34 wird, wie es zu sehen ist, zunächst einerVariablen j ein Zufallswert zwischen 0 und 7 einschließlich zugewiesen. Übertragenauf einen Maschinencode würdedieser Wert dann an einer festen, definierten Speicherposition gespeichertwerden. Hierauf erfolgt bei 38 der Beginn einer Programmschleife,zu deren Beginn ein Zählerwerti auf Null initialisiert wird (40), an den Enden dererSchleifendurchgängeunmittelbar vor einem nächstenDurchgang der Zählerwerti jeweils um 1 inkrementiert wird, und die beendet wird, wenn nacheinem Schleifendurchgang der Zählerwerti den Wert 7 überschreitet (42).Innerhalb jedes Schleifendurchgangs werden der Zählerwert i und der Zufallswertj modulo 8 addiert, und das Ergebnis einer Variablen z übergeben (44).Im Maschinencode würdedies wieder durch Speichern der Variable z an einer vorbestimmtenfesten Speicherposition erfolgen. Als zweiter Schritt in jeder Programmschleifewird dann in einem Schritt 46 aus einem Speicherarray,das an der Basisadresse Basisadresse(z) beginnt, der Speicherinhaltan der Zugriffsadresse 32 ausgelesen, d.h. an der Adresse, diesich aus der Basisadresse Basisadresse(z) inkrementiert um den Versatzwertbzw. die Versatzadresse in(z) ergibt, wobei in(z) dem Wert des Worts WORT(z)aus dem Datenblock 30 entsprechen soll und in Maschinencodebeispielsweise durch einen LOAD-Befehlbezüglicheines fest angeordneten, an einer festen Adresse beginnenden Speicherarrays mittelsz als Versatzwert erhalten werden würde. Das Ergebnis des Auslesevorgangs 46 wirdin einem eindimensionalen, fest angeordneten Speicherarrayfeld ausacht Speicherpositionen an der z-ten Position als Variable out(z)gespeichert. Im Maschinencode übersetztwürde dieBefehlszeile 46 mehrere Befehlszeilen enthalten, die dasErgebnis des Auslesens jedoch immer an einen von acht festen Speicherplätzen speichern,von denen jeder einem unterschiedlichen der Worte WORT1–WORT8 zugeordnetist. [0043] DieFunktion des Programmcodeabschnitts 34 besteht darin, durchdie Bestimmung des Zufallswerts j im Schritt 36 zunächst einmalauf zufällige Weisezu bestimmen, mit welcher S-Box-Operation S1–S8 unter den acht S-Box-OperationenS1–S8in der Substitutionsoperation 918 begonnen werden soll.Danach werden in der Schleife 38 alle acht S-Box-Operationendurchgeführt,indem die Schleife 38 acht mal durchlaufen wird. Anstattjedoch den immer bei dem Wert 0 beginnenden Schleifenzählerwertzu verwenden, um die Reihenfolge zu bestimmen, in welcher die WorteWORT1–WORT8auf die entsprechenden 4-Bit-Worte abgebildet werden, wird der Wertz verwendet. Dies bedeutet, dass durch die Programmschleife 38 indem Programmcode 34 lediglich ein zyklisches Durchlaufender S-Box-Operationen S1–S8festgelegt ist, dass aber die S-Box-Operation, mit welcher innerhalbder Schleife 38 begonnen wird, dadurch verändert werdenkann, dass die Variable j vor der Schleife 38 eingestelltwird, was vorliegend auf zufälligeWeise durchgeführtwird. Anders ausgedrücktzerfälltder Programmcode 34 in zwei Teile, nämlich einen Programmcodeteil 36,welcher an einem fest bestimmten Speicherplatz Zufallsinformationen über einezufälligeReihenfolge bezüglichder Durchführungder S-Box-Operationen festlegt, und einen weiteren Programmteil,der auf diesen Speicherplatz zugreift, um abhängig von den Zufallsinformationendie S-Box-Operationen,nämlich dasZugreifen auf den Adressraum, in einer Reihenfolge vorzunehmen,die durch die Zufallsinformationen angezeigt wird. Hierbei greiftder zweite Programmteil 38 bzw. 38–46 aufdie Eingangsoperanden zu, die an vorbestimmten festen Positionenangeordnet sind, und schreibt das an diesen Positionen Gelesenewiederum an feste zugeordnete Speicherpositionen. Das Array out(0) ... out (7) bildet durch Aneinanderreihung und Darstellung derWerte out (0) ... out (7) in 4-Bit-Darstellung den 32-Bit-Datenblock, derbei dem DES-Algorithmusdann an die Permutationseinrichtung 920 weitergeleitetwird. [0044] Ausdem Ausführungsbeispielvon 3d wurde deutlich, dass der Programmteil 36 dieFunktion der Einrichtung 24 von 1 und derProgrammteil 38–46 dieFunktion der Zwischenergebnisermittlungseinrichtungen 18 und 20 übernimmt.Es wurde ferner deutlich, dass der Programmcode 34 insgesamtimmer, d.h. unabhängigvom Zufallswert j, in derselben Programmablaufsreihenfolge ausgeführt wird.Die Verringerung der Leckinformationen wird lediglich dadurch realisiert,dass durch einen Befehl 36 in einem festen Speicherplatzbzw. Register ein zufälligerWert j bereitgestellt wird, auf den dann der andere Programmteil 38–46 zugreift,um die an festen Positionen gespeicherten Eingangsoperanden A bzw.B bzw. WORT1–WORT8in einer entsprechenden Reihenfolge abzurufen und zu verarbeiten. [0045] Beidem Ausführungsbeispielvon 3a–3d warendie Nachschlagtabellen fürdie verschiedenen S-Boxen S1–S8an unterschiedlichen Speicherplätzenangeordnet. Die entsprechenden Abschnitte im linearen Adressraum,wie sie in 3b gezeigt sind, werden miteinem Abschnitt zufälligbeginnend zyklisch durchlaufen. Die physischen Zugriffe finden folglichje nach Zufallswert j an einer unterschiedlichen Stelle des linearenAdressraums beginnend statt. Hieraus könnten Rückschlüsse auf die Zufallszahl j gewonnenwerden. [0046] Nocheffektiver ist deshalb die vorliegende Erfindung bei Anwendung aufeinen AES-Algorithmus, bei welchem in den zehn AES-Runden eine Substitutionsoperationaus 16 unabhängigen Byte-Substitutionenunter Verwendung derselben S-Box bzw. Nachschlagtabelle stattfindet.Die AES-S-Box ist eine Abbildung eines 8-Bit-Eingangswertes aufeinen 8-Bit-Ausgangswert und ist deshalb 28 × 8 Bits= 28 Bytes = 256 Bytes groß. 16 8-Bit-Wortein einem 128-Bit-Datenblock werden beim AES-Algorithmus innerhalb der Substitutionsoperationunabhängigvoneinander durch die S-Box auf 16 8-Bit-Ausgangsworte abgebildet,die zusammen wiederum einen 128-Bit-Ausgangsdatenblock der Substitutionsoperationergeben. [0047] DerProgrammcode 34 von 3d kann ohneweiteres an einen AES-Algorithmus angepasst werden, indem „7" durch „15", „8" durch „16" und „Basisadresse(z)" durch „Basisadresse", nämlich diejenigeder einzigen AES-S-Box, ersetzt wird. Eingangswerte des Programmabschnitts 38 wären dann die16 in einem eindimensionalen Array angeordneten 8-Bit-Worte in(0)–in(15),und das Ausgangsarray wäreout (0)-out(15). Wie bei dem Ausführungsbeispiel bezüglich desDES-Algorithmus von 3d, wäre der Programmabschnitt 38–46 fest,und die zufälligeDurchführungsreihenfolgewürde lediglich durchdie Verwendung des Zufallswerts j zur Manipulation des Speicherzugriffsrealisiert werden, um die Eingangsoperanden in zufällig beginnenderzyklischer Reihenfolge zu laden und zu verarbeiten. [0048] Bezugnehmend auf die vorhergehende Beschreibung wird noch auf folgendeshingewiesen. Bei den vorhergehenden Ausführungsbeispielen wurden dieZwischenergebnisse immer basierend auf unterschiedlichen EingangsoperandenA, B bzw. WORT1–WORT8erhalten. Freilich wärees auch möglich,Zwischenergebnisse in unterschiedlichen Reihenfolgen zu ermitteln,die ihrerseits wiederum auf dem- oder denselben Eingangsoperandenbasieren, d.h. A = B und Eingang 12 und Eingang 14 in 1 gebildetdurch einen einzigen Eingang. Ferner wird darauf hingewiesen, dass,obwohl in den 1 und 2 eine Einrichtung 22 zumBilden des Ergebnisses aus den Zwischenergebnissen vorgesehen ist,eine solche Einrichtung nicht physisch vorhanden sein muss, wiedas Ausführungsbeispielvon 3d zeigt. Dort findet die Bildung des Ergebnisseslediglich dadurch statt, dass die Ausgangswerte out (0) ... out(7) an entsprechenden Speicherplätzenabgelegt werden. Das Ergebnis, nämlichder 32-Bit-Datenblock, ist dann einfach die Aneinanderreihung von out(0) ... out (7), ohne dass hierzu eine weitere Lese/Schreib-Operationoder dergleichen notwendig wäre.Die Einrichtung 22 wurde in den 1 und 2 lediglichder Übersichtlichkeithalber dargestellt. [0049] Dievorhergehenden Ausführungsbeispiele machenfolglich von dem Umstand nutzen, dass Blockchiffren in der Regelaus mehreren unabhängigenS-Box-Zugriffen bestehen, wodurch eine effektive durch externe Methodennicht aufhebbare Schwächungder gemittelten Leckinformationen bei Speicherzugriffen erzieltwerden kann, welche fürdie DPA/DEMA benötigtwerden. Dadurch werden diese Art von Angriffen im wesentlichen erschwert,wenn nicht sogar vereitelt. Gemäß dem Ausführungsbeispielvon 3a–3d wirdeine Reihe von Speicherzugriffen in ihrer Reihenfolge zufällig vonProgrammdurchlauf zu Programmdurchlauf getauscht. Dies erfolgt abernicht überverschiedene Codesequenzen, die wahlweise angesprungen werden, sondern über einegeschickte Zeigerverwaltung bzw. Zeigermanipulation der Zeiger,welche auf die zu ladenden Daten (in (0) ... in (7)) zeigen. Diesgeschieht dann immer überein und dasselbe StückProgrammcode 34. Der S-Box-Zugriff beim DES-Algorithmus, wie in 3a–3d gezeigt,war hierbei nur ein einfaches Beispiel und lässt sich, wie im Vorhergehendenbeschrieben, auf andere Algorithmen übertragen, wie z.B. auf denAES-Algorithmus. Abhängig voneinem Datum in wird aus der zugehörigen S-Box ein neues Datumout geladen, welches das Vorgängerdatumin ersetzt. Beim DES-Algorithmuserfolgt dies acht mal, beim AES 16 mal. [0050] DieOperation, die dafürnötig ist,bestand aus einem Laden „in(z)" des Ursprungsdatumsin(z), welches dann als Offset zu einer Basisadresse „Basisadresse(z)" bei 46 der zugehörigen S-Boxverwendet wurde, um das Substitut „out(z)" zu laden. Die Reihenfolge, in welcherdie S-Boxen abgearbeitet werden, wurde dadurch zufällig gemacht,dass man beispielsweise beim AES-Algorithmus einen zufälligen Startwertzwischen 0 und 15 (einschließlich) wählte unddann die S-Box in einer Schleife lud, welche modulo 16 jeweils inkrementiert.So kann die gemittelte Leckinformation auf 1/16 reduziert werden, undzwar bei gleichbleibendem Rauschen. Dies erhöht die Zahl der notwendigenMittelungen um den Faktor 256, was über Erfolg und Misserfolg einesAngriffs entscheiden kann. Fügtman zusätzlicheinige Dummyzugriffe hinzu, im AES-Algorithmus beispielsweise weiterevirtuelle S-Box-Zugriffe 16–31, welche dann ebensozufälligdurch die Zeigerarithmetik, wie oben beschrieben, adressiert werden,so erhöhtsich die Zahl der notwendigen Mittelungen nochmals erheblich, nämlich indem Fall weiterer 16 virtueller S-Box-Zugriffe um den Faktor1.024. [0051] Fernerwird noch darauf hingewiesen, dass auch eine vollständige Permutationder Durchführungsreihenfolgeerzielt werden könnte,wenn bei dem Code von 3d anstelle der Zeile 36 einProgrammcodeabschnitt vorgesehen werden würde, der beispielsweise einezufälligePermutation des Vektors (0, 1, 2, 3, 4, 5, 6, 7) erzeugte und für den Programmabschnitt 38–36 aneiner festen Stelle ablegte. [0052] Fernerist die vorliegende Erfindung nicht auf symmetrische Blockchiffren,wie sie in vorhergehenden Ausführungsbeispielenverwendet wurden, begrenzt sondern auch bei asymmetrischen Algorithmenanwendbar. [0053] Wieoben erläutertkann abhängigvon den Gegebenheiten das erfindungsgemäße Schema zur Ergebnisermittlungauch in Software implementiert sein. Die Implementierung kann aufeinem digitalen Speichermedium, insbesondere einer Diskette oder einerCD mit elektronisch auslesbaren Steuersignalen erfolgen, die somit einem programmierbaren Computersystem zusammenwirken können, dass dasentsprechende Verfahren ausgeführtwird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammproduktmit auf einem maschinenlesbaren Träger gespeicherten Programmcodezur Durchführungdes erfindungsgemäßen Verfahrens, wenndas Computerprogrammprodukt auf einem Rechner abläuft. Inanderen Worten ausgedrückt kanndie Erfindung somit als ein Computerprogramm mit einem Programmcodezur Durchführungdes Verfahrens realisiert werden, wenn das Computerprogramm aufeinem Computer abläuft. 10 Ergebnisbestimmungsvorrichtung 12 Eingang 14 Eingang 16 Ausgang 18 Zwischenergebnisermittlungseinrichtung 20 Zwischenergebnisermittlungseinrichtung 22 Einrichtungzum Bilden des Ergebnisses 24 Einrichtungzum Bestimmen der Reihenfolge 26 Zwischenergebnisermittlungseinrichtung 28 Umschalteinrichtung 30 48-Bit-Datenblock 32 Zugriffsadresse 34 Programmcodeabschnitt 900 64-Bit-Eingangsblock 902 Eingangspermutation 904 linkeHälftedes 64-Bit-Rundenergebnisses 906 rechteHälftedes 64-Bit-Rundenergebnisses 908 Abbildung 910 Expansion 912 XOR-Verknüpfung 914 56-Bit-Hauptschlüssel 916 Rundenschlüsselerzeugung 918 S-Box-Abbildung 920 Permutation 922 XOR-Verknüpfung 924 Ausgangspermutation 926 64-Bit-Ausgangsblock
权利要求:
Claims (15) [1] Vorrichtung zum Bestimmen eines Rechenergebnissesmit folgenden Merkmalen: einer Einrichtung (18, 20; 26; 38)zum Ermitteln eines ersten Zwischenergebnisses und eines zweitenZwischenergebnisses, wobei das Ergebnis von dem ersten Zwischenergebnisund dem zweiten Zwischenergebnis abhängt; und einer Einrichtung(24; 36) zum zufälligen Bestimmen einer Reihenfolge,in welcher die Einrichtung zum Ermitteln die Ermittlung des erstenZwischenergebnisses und des zweiten Zwischenergebnisses durchführt. [2] Vorrichtung gemäß Anspruch1, bei der die Einrichtung (26) zum Ermitteln eine Einrichtungzum Herleiten eines Herleitungsergebnisses aus einem Herleitungseingangsoperandenaufweist, und die Einrichtung (24) zum Bestimmen ausgebildetist, um zu bewirken, dass der Einrichtung zum Herleiten ein ersterEingangsoperand als der erste Herleitungseingangsoperand, um daserste Zwischenergebnis als das Herleitungsergebnis zu erhalten,und ein zweiter Eingangsoperand als der Herleitungseingangsoperand,um das zweite Zwischenergebnis als das Herleitungsergebnis zu erhalten,in der zufälligbestimmten Reihenfolge zugeführtwerden. [3] Vorrichtung gemäß Anspruch1, bei der die Einrichtung (18, 20) zum Ermittelneine erste Einrichtung (18) zum Herleiten eines erstenHerleitungsergebnisses aus einem ersten Herleitungseingangsoperandenund eine zweite Einrichtung (20) zum Herleiten eines zweitenHerleitungsergebnisses aus einem zweiten Herleitungseingangsoperandenaufweist, und wobei die Einrichtung (24) zum Bestimmenausgebildet ist, um zu bewirken, dass der ersten Einrichtung zumHerleiten ein erster Eingangsoperand als der erste Herleitungseingangsoperand,um das erste Zwischenergebnis als das erste Herleitungsergebnis zuerhalten, und der zweiten Einrichtung zum Herleiten ein zweiterEingangsoperand als der zweite Herleitungseingangsoperand, um das zweiteZwischenergebnis als das zweite Herleitungsergebnis zu erhalten,in der zufälligbestimmten Reihenfolge zugeführtwerden. [4] Vorrichtung gemäß Anspruch2 oder 3, bei der die Einrichtung zum Herleiten bzw. die Einrichtungen zumHerleiten eine Nachschlagtabelle aufweisen und ausgebildet sind,um zur Herleitung des Herleitungsergebnisses unter Verwendung desHerleitungseingangsoperanden als Adresse auf eine Nachschlagtabellezuzugreifen, um das Herleitungsergebnis zu erhalten. [5] Vorrichtung gemäß einemder Ansprüche2 bis 4, bei der der erste Eingangsoperand und der zweite Eingangsoperandaus verschiedenen Bitpositionen eines Eingangsdatums (30)stammen. [6] Vorrichtung gemäß einemder Ansprüche1 bis 5, die ferner folgendes Merkmal aufweist: eine Einrichtung(22) zum Bilden des Ergebnisses aus dem ersten Zwischenergebnisund dem zweiten Zwischenergebnis. [7] Vorrichtung gemäß Anspruch6, bei der die Einrichtung (22) zum Bilden ausgebildetist, um das Ergebnis durch Zusammenfügen oder bitweises Verknüpfen vonBits des ersten Zwischenergebnisses und Bits des zweiten Zwischenergebnisseszu erhalten. [8] Vorrichtung gemäß einemder Ansprüche1, 6 oder 7, bei der eine Folge von N Zwischenergebnissen existiert,und die Einrichtung (38) zum Ermitteln N Nachschlagtabellenaufweist, von denen jeder eine unterschiedliche einer Folge vonN Basisadressen zugeordnet ist, wobei die Einrichtung (36)zum zufälligenBestimmen einer Reihenfolge ausgebildet ist, um einen zufälligen Startwert0 ≤ j < N zu ermitteln, undwobei die Vorrichtung ferner folgendes Merkmal aufweist: eineEinrichtung zum Nachschlagen in der Nachschlagtabelle mit der j-tenBasisadresse unter Verwendung eines j-ten einer Folge von N Eingangsoperandenals eine Versatzadresse zur j-tenBasisadresse, um das j-te Zwischenergebnis zu erhalten. [9] Vorrichtung gemäß Anspruch1, 6 oder 7, bei der eine Folge von N Zwischenergebnissen existiert unddie Einrichtung zum Ermitteln eine Nachschlagtabelle aufweist, wobeidie Einrichtung zum Bestimmen einer Reihenfolge ausgebildet ist,um einen zufälligenStartwert 0 ≤ j < N zu ermitteln,und wobei die Vorrichtung ferner folgendes Merkmal aufweist: eineEinrichtung zum Nachschlagen in der Nachschlagtabelle unter Verwendungeines j-ten einer Folge von N Eingangsoperanden als eine Versatzadressezu einer Basisadresse der Nachschlagtabelle, um das j-te Zwischenergebniszu erhalten. [10] Vorrichtung gemäß Anspruch8 oder 9, bei der die Einrichtung zum Nachschlagen ausgebildet ist,um nach dem Nachschlagen den Wert j modulo N zu inkrementieren,um einen neuen Wert fürj zu erhalten und das Nachschlagen für den neuen Wert für j zu wiederholen. [11] Vorrichtung gemäß einemder vorhergehenden Ansprüche,bei der N Zwischenergebnisse existieren, von welchen das Ergebnisabhängt,und wobei unter den Ermittlungen der N Zwischenergebnisse eine zyklischeReihenfolge definiert ist, in welcher die Ermittlungen durchgeführt werden,wobei die Einrichtung zum Bestimmen ausgebildet ist, um eine Ermittlungeines der N Zwischenergebnisse zufällig zu bestimmen, mit welcherdie Durchführungder Ermittlungen der N Zwischenergebnisse gemäß der zyklischen Reihenfolgebeginnt. [12] Vorrichtung gemäß einemder vorhergehenden Ansprüche,die Teil einer Kryptographiecontrollers ist. [13] Vorrichtung gemäß einemder vorhergehenden Ansprüche,bei der das Rechenergebnis Teil eines Endergebnis oder eines Zwischenergebniseines kryptographischen Algorithmus ist. [14] Verfahren zum Berechnen eines Ergebnisses mit folgendenSchritten: Ermitteln eines ersten Zwischenergebnisses und eineszweiten Zwischenergebnisses; wobei das Ergebnis von dem erstenZwischenergebnis und von dem zweiten Zwischenergebnissen abhängt, undwobei das Verfahren ferner folgenden Schritt aufweist: zufälliges Bestimmeneiner Reihenfolge, in welcher die Schritte des Ermittelns durchführt werden. [15] Computer-Programm mit einem Programmcode zur Durchführung desVerfahrens nach Anspruch 14, wenn das Computer-Programm auf einem Computerabläuft.
类似技术:
公开号 | 公开日 | 专利标题 USRE44697E1|2014-01-07|Encryption processor with shared memory interconnect US8638944B2|2014-01-28|Security countermeasures for power analysis attacks Mangard et al.2003|A highly regular and scalable AES hardware architecture Adams et al.1990|The structured design of cryptographically good S-boxes EP2356771B1|2018-05-30|Blockchiffrierung mit niedriger latenz DE60222052T2|2008-05-21|Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme | EP2132899B1|2018-06-06|Flexible architektur und anweisung für fortgeschrittenen verschlüsselungsstandard JP5485694B2|2014-05-07|ホワイトボックス実施のための暗号化方法 US9600421B2|2017-03-21|Systems and methods for low-latency encrypted storage DE10201449C1|2003-08-14|Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor US6278783B1|2001-08-21|Des and other cryptographic, processes with leak minimization for smartcards and other cryptosystems EP1193665B1|2012-02-15|Blockverschlüsselungseinrichtung unter verwendung von hilfsumwandlungen US5003597A|1991-03-26|Method and apparatus for data encryption CN101401348B|2011-08-31|用于使密码函数模糊的方法和系统 EP1005191B1|2006-02-15|Vorrichtung zum Verschlüsseln/Entschlüsseln und Speichermedium Elbaz et al.2007|Tec-tree: A low-cost, parallelizable tree for efficient defense against memory replay attacks KR100610367B1|2006-08-10|정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치 CN101371480B|2013-08-21|加密保护方法 EP1440535B1|2011-01-05|Verfahren und System zur Speicherverschlüsselung US7295671B2|2007-11-13|Advanced encryption standard | hardware cryptographic engine US8515057B2|2013-08-20|Method and device for executing crytographic calculation US8306227B2|2012-11-06|Data encryption system and method JP4025722B2|2007-12-26|データ暗号化のための方法および装置 Wong et al.2009|An efficient diffusion approach for chaos-based image encryption US6185679B1|2001-02-06|Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
同族专利:
公开号 | 公开日 US20050232416A1|2005-10-20| FR2869174A1|2005-10-21| FR2869174B1|2007-11-30| DE102004018874B4|2009-08-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-11-10| OP8| Request for examination as to paragraph 44 patent law| 2010-02-04| 8364| No opposition during term of opposition|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 DE102004018874A|DE102004018874B4|2004-04-19|2004-04-19|Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses|DE102004018874A| DE102004018874B4|2004-04-19|2004-04-19|Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses| FR0503775A| FR2869174B1|2004-04-19|2005-04-15|Procede et dispositif pour determiner un resultat| US11/111,096| US20050232416A1|2004-04-19|2005-04-19|Method and device for determining a result| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|